package cn.tedu.csmall.stock.webapi.quartz;

import cn.tedu.csmall.commons.pojo.stock.model.Stock;
import cn.tedu.csmall.stock.webapi.quartz.config.RabbitMQConfig;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

// 当前接收消息的类,也要保存到Spring容器中
@Component
// 和Kafka不同,RabbitMQ的监听器注解要写到类上
@RabbitListener(queues = {RabbitMQConfig.STOCK_QUEUE})
public class RabbitMQConsumer {

    // 在类上标记监听器注解,但是不能标记对哪个方法运行
    // 所以我们需要在要执行消息处理的方法前添加另外的注解
    // 每个类只允许一个方法标记这个注解
    // 方法参数比Kafka更简单,直接声明接收消息的类型参数即可
    @RabbitHandler
    public void process(Stock stock){
        System.out.println("消息接收完成!内容是:"+stock);
    }

}
